Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Logische Programmierung</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Logische_Programmierung"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Logische_Programmierung rootpage-Logische_Programmierung skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Logische Programmierung</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Logische Programmierung</b> (<i>Prädikative Programmierung, Logikprogrammierung</i><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>) ist ein <a href="Programmierparadigma" title="Programmierparadigma">Programmierparadigma</a>, das auf der <a href="Mathematische_Logik" title="Mathematische Logik">mathematischen Logik</a> beruht. Anders als bei der <a href="Imperative_Programmierung" title="Imperative Programmierung">imperativen Programmierung</a> besteht ein Logik-Programm nicht aus einer Folge von Anweisungen, sondern aus einer Menge von <a href="Axiom" title="Axiom">Axiomen</a>, welche hier als eine Ansammlung von Fakten oder Annahmen zu verstehen ist. Stellt der Benutzer eines Logik-Programms eine Anfrage, so versucht der <a href="Interpreter" title="Interpreter">Interpreter</a>, die Lösungsaussage allein aus den Axiomen zu berechnen.
</p><p>Dazu werden eine Menge von so genannten <i>Regeln</i> und Anweisungen, die der Syntax gemäß aufgebaut sind zusammen mit der Information, welche Lösungsmethode vorgesehen ist, in den Programmcode eingefügt. Logische Programmiersprachen gehören zu den <a href="Deklarative_Programmierung" title="Deklarative Programmierung">deklarativen Programmiersprachen</a> und haben ihre Ursprünge im Forschungsgebiet <a href="K%C3%BCnstliche_Intelligenz" title="Künstliche Intelligenz">Künstliche Intelligenz</a>.
</p><p>In einem <a href="Imperative_Programmiersprache" class="mw-redirect" title="Imperative Programmiersprache">imperativen Programm</a> wird genau beschrieben, wie und in welcher Reihenfolge ein Problem zu lösen ist. Im Gegensatz dazu wird in einem logikbasierten Programm beschrieben, was gilt. Das Wie ist durch die Lösungsmethode vorgegeben. Die Lösung wird aus den Regeln <a href="Deduktion" title="Deduktion">hergeleitet</a>.
</p><p>Die bekannteste logische Programmiersprache ist <a href="Prolog_(Programmiersprache)" title="Prolog (Programmiersprache)">Prolog</a>. Zu den Begründern der logischen Programmierung zählten in den 1970er Jahren <a href="Alain_Colmerauer" title="Alain Colmerauer">Alain Colmerauer</a> und <a href="Robert_Kowalski" title="Robert Kowalski">Robert Kowalski</a>.
</p>

<div class="mw-heading mw-heading2"><h2 id="Erläuterungen"><span id="Erl.C3.A4uterungen"></span>Erläuterungen</h2></div>
<p>Die <b>Syntax</b> gibt an, wie Regeln geschrieben werden müssen, damit der Computer sie verwenden kann. <b>Regeln</b> sind Wenn-Dann-Aussagen und Fakten, die das Wissen zu einem Problemkreis beschreiben. Daneben gibt es spezielle Konstrukte, um die Lösungsmethode zu beeinflussen. Am bekanntesten ist die Rückwärtsabschneidung (engl. <i>cut</i>) in Prolog, womit z.&nbsp;B. Ausnahmeregeln modelliert werden.
</p><p>Einem regelbasierten Programm kann man <b>Fragen</b> (engl. <i>query</i>) stellen, indem man ein <b>Ziel</b> (engl. <i>goal</i>) vorgibt.
</p><p>Die <b>Lösungsmethode</b> gibt vor, wie die Inferenzmaschine die Regeln interpretiert, um die Frage zu beantworten. In Prolog wird eine <a href="Tiefensuche" title="Tiefensuche">Tiefensuche</a> (engl. <i>depth first</i>) mit <a href="Unifikation_(Logik)" title="Unifikation (Logik)">Unifikation</a> und <a href="Backtracking" title="Backtracking">Backtracking</a> verwendet. Auch andere Methoden sind geeignet und werden je nach Anwendungsfall auch eingesetzt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiel">Beispiel</h2></div>
<p>Dieses Beispiel ist in natürlicher Sprache formuliert, um das Prinzip aufzuzeigen.
</p><p>Fakten:
</p>
<dl><dd><i>Lucia ist die Mutter von Minna.</i></dd></dl>
<dl><dd><i>Lucia ist die Mutter von Klaus.</i></dd></dl>
<dl><dd><i>Minna ist die Mutter von Nadine.</i></dd></dl>
<p>Regel:
</p>
<dl><dd><b>Falls</b> <i>X ist die Mutter von Y</i> <b>und</b> <i>Y ist die Mutter von Z</i> <b>Dann</b> <i>X ist die Großmutter von Z.</i></dd></dl>
<p>Frage/Ziel:
</p>
<dl><dd><i>Wer ist die Großmutter von Nadine?</i></dd></dl>
<p>Antwort des Computers, Folgerung aus den Fakten und Regeln:
</p>
<dl><dd><i>Lucia</i></dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Einsatzgebiete">Einsatzgebiete</h2></div>

<p>Typische Einsatzgebiete sind Simulatoren, Generatoren, sowie Systeme zur Diagnose und Prognose. Anwendungen der Logikprogrammierung finden sich in folgenden Bereichen:
</p>
<ul><li><a href="K%C3%BCnstliche_Intelligenz" title="Künstliche Intelligenz">Künstliche Intelligenz</a></li>
<li><a href="Datenbank" title="Datenbank">Datenbanken</a></li>
<li><a href="Expertensystem" title="Expertensystem">Expertensysteme</a></li></ul>
<p>Beispiele außerhalb der Informatik:
</p>
<ul><li><a href="Wirtschaft" title="Wirtschaft">Wirtschaft</a> und <a href="Handel" title="Handel">Handel</a>: Produktkonfigurator, Routenplaner, Marktsimulation (z.&nbsp;B. zur Preisfindung)</li>
<li><a href="Medizin" title="Medizin">Medizin</a>: Diagnosesysteme</li>
<li><a href="Mathematik" title="Mathematik">Mathematik</a>: Theorembeweiser und Theoremgeneratoren</li>
<li><a href="Naturwissenschaft" title="Naturwissenschaft">Naturwissenschaften</a>: Auswerten und Abfragen geologischer und meteorologischer Datensammlungen, Simulatoren und Vorhersagesysteme für Wetter, Erdbeben und Wasserstände</li>
<li><a href="Technik" title="Technik">Technik</a>: <a href="Computer-aided_design" class="mw-redirect" title="Computer-aided design">CAD</a>, <a href="Computer-aided_manufacturing" title="Computer-aided manufacturing">CAM</a></li>
<li><a href="Soziologie" title="Soziologie">Soziologie</a></li>
<li><a href="Psychologie" title="Psychologie">Psychologie</a></li>
<li><a href="Computerlinguistik" title="Computerlinguistik">Computerlinguistik</a>: Maschinelles Übersetzen natürlicher Sprache, Erkennen und Verstehen gesprochener Sprache</li>
<li>und viele weitere</li></ul>
<p>Auf dem Gebiet der Informatik und Computertechnik:
</p>
<ul><li><a href="Computertechnik" class="mw-redirect" title="Computertechnik">Computertechnik</a>: Design und Simulation von Prozessoren und Schaltkreisen</li>
<li><a href="Compilerbau" title="Compilerbau">Compilerbau</a></li>
<li><a href="Computerspiel" title="Computerspiel">Computerspiele</a>: „intelligentes“ Verhalten simulierter Mitspieler, Taktik, Strategie</li>
<li>parallele Datenverarbeitung</li>
<li><a href="Dokumentenmanagement" title="Dokumentenmanagement">Dokumentenmanagement</a>: Strukturierte Dokumente verarbeiten, <a href="Semantisches_Web" class="mw-redirect" title="Semantisches Web">Semantisches Web</a>, <a href="XSLT" class="mw-redirect" title="XSLT">XSLT</a></li>
<li><a href="Prototyping_(Softwareentwicklung)" title="Prototyping (Softwareentwicklung)">Rapid Prototyping</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external autonumber" href="http://informatikdidaktik.de/HyFISCH/Spitzenforschung/Schaub.htm">[1]</a> – knapper Überblick von der Entwicklung der klassischen Logik hin zur logischen Programmierung (110 kB)</li>
<li><a rel="nofollow" class="external text" href="http://xsb.sourceforge.net/">XSB</a> (englisch) Logik-System und Deduktive Datenbank (Open Source)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.informatik.uni-kiel.de/~mh/lehre/lp03.html"><i>Logikprogrammierung.</i></a><span class="Abrufdatum"> Abgerufen am 5.&nbsp;März 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ALogische+Programmierung&amp;rft.title=Logikprogrammierung&amp;rft.description=Logikprogrammierung&amp;rft.identifier=https%3A%2F%2Fwww.informatik.uni-kiel.de%2F%7Emh%2Flehre%2Flp03.html">&nbsp;</span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2022-03-06" href="https://de.wikipedia.org/wiki/?title=Logische_Programmierung&amp;oldid=220835265">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>